Последовательность битов
кодируется следующим образом. Если значение предыдущего бита исходной
последовательности отличается от значения текущего кодируемого бита, в
результирующую последовательность записывается 1. Если значения битов не
отличаются, то записывается 0. Для первого бита последовательности предыдущим
является бит со значением 0.
Напишите программу, выполняющую
кодирование.
Вход. Строка длиной не более 100 символов,
состоящая только из 0 и 1, представляющая собой кодируемую последовательность
битов.
Выход. Вывести результат кодирования.
Пример
входа |
Пример
выхода |
10010111 |
11011100 |
строки
Массив s содержит входную строку, t – результирующую.
char s[110], t[110];
Читаем
входную строку. Изначально предыдущим символом является 0.
gets(s);
prev = '0';
Кодируем
символы согласно правилу, описанному в условии.
for (i = 0; i < strlen(s); i++)
{
if (s[i] == prev) t[i] = '0'; else
t[i] = '1';
prev = s[i];
}
В
конце строки t поставим ноль байт. Выводим результат
кодирования.
t[i] = 0;
puts(t);
Строка s содержит входную строку, res – результирующую.
string s, res;
Читаем
входную строку. Изначально предыдущим символом является 0.
cin >> s;
p = '0';
Кодируем
символы согласно правилу, описанному в условии.
for (i = 0; i < s.size(); i++)
{
if (s[i] == p)
res = res + '0';
else res = res + '1';
p = s[i];
}
Выводим
результат кодирования.
cout << res << endl;